/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.comac.ins.common.core.exception.base.BaseException;
import com.comac.ins.isfd.domain.IsfdMeshOp2Collect;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * 自然网格结果库-采集视图对象 isfd_op2_collect
 *
 * @author hxloongs
 * @date 2025-03-24
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = IsfdMeshOp2Collect.class)
public class IsfdMeshOp2CollectVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 组id
     */
    private Long groupId;

    /**
     * 主键
     */
    @ExcelProperty(value = "大文件id")
    private String uploadId;

    /**
     * 上传时刻的时间戳
     */
    @ExcelProperty(value = "上传时刻的时间戳")
    private Long uploadTime;

    /**
     * 上传时刻的字符串
     */
    private String uploadTimeString;

    public String getUploadTimeString() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if (uploadTime == null) {
            return "无上传时间";
        }
        try {
            // 将时间戳转换为 Date 对象
            Date date = new Date(uploadTime);
            // 格式化 Date 对象为指定的日期字符串
            return sdf.format(date);
        } catch (Exception e) {
            throw new BaseException("上传时间转换失败！");
        }
    }

    /**
     * 机型编码
     */
    @ExcelProperty(value = "机型编码")
    private String modelNumber;

    /**
     * 批次号
     */
    @ExcelProperty(value = "批次号")
    private String batchNumber;

    /**
     * 部段编码集合，逗号隔开
     */
    @ExcelProperty(value = "部段编码集合，逗号隔开")
    private String sectionNumbers;

    /**
     * 部段编码集合，逗号隔开
     */
    @ExcelProperty(value = "部段编码集合，逗号隔开")
    private String sectionNumbersString;

    /**
     * 轮次编号
     */
    @ExcelProperty(value = "轮次编号")
    private String roundNumber;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 是否通过质量检测,0-通过，1-不通过
     */
    @ExcelProperty(value = "是否通过质量检测,0-通过，1-不通过")
    private Integer qualityCheck;

    /**
     * 是否过滤,0-没被过滤，1-过滤
     */
    @ExcelProperty(value = "是否过滤,0-没被过滤，1-过滤")
    private Integer filtered;

    /**
     * 上传失败提示信息
     */
    @ExcelProperty(value = "上传失败提示信息")
    private String message;

    /**
     * 结果库表名
     */
    private String tableName;

    /**
     * 大文件vo
     */
    private IsfdLargeFileVo isfdLargeFileVo;

    /**
     * 文件所在位置
     */
    private String location;
}
